<?


class Ajax{

	private $s;			// Objet Sql

	function __construct(){
		$this->s =& load("sql");
	}

	function Afficher($tab){

		$infos = explode("/", $tab);
		$table = $infos[0];
		$icones = $infos[1];

		GLOBAL $URLBASE, $LATEXDISPO, $props, $struct;

		if (!(isset($_GET["startIndex"]) && isset($_GET["numberOfRows"]) && isset($_GET["sortBy"]) && isset($_GET["sortAscending"]))){
			echo "Erreur";	
			return "";
		}

		if (!(isset($props[$table]))){
			echo "Table incorrecte !";
			return "";
		}

		// Constitution de la requete
		$req = "SELECT ";
		$req .= $props[$table]["cle"]." AS primkey,";
		$req .= implode(", ", $props[$table]["cols"]);
		$req .= " FROM ".$this->s->table($table)." ORDER BY ".$this->s->proteger($_GET["sortBy"])." ";
		$req .= (($_GET["sortAscending"] == "false") ? "DESC" : "ASC");
		$req .= " LIMIT ".$this->s->proteger($_GET["startIndex"]).", ".$this->s->proteger($_GET["numberOfRows"]);

		// DEBUG
		//echo $req;

		$this->s->query($req);

		$res = "";
		while($r = $this->s->fetch_object()){
			foreach ($props[$table]["cols"] as $l){
				if (($table == "exercice" && $l == "exo_difficulte") || ($table == "exoattente" && $l == "exa_difficulte"))
					$res .= '<img src="/images/'.$r->{$l}.'.gif" />###';
				elseif ($l != "primkey")
					$res .= $r->{$l}."###";
			}
			if ($icones == "exoattente"){
				// Exercices en attente
				$res .= '<a href="/'.$table.'/valider/'.$r->primkey.'"><img src="'.$URLBASE.'/images/valider.gif" /></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/'.$table.'/supprimer/'.$r->primkey.'"><img src="'.$URLBASE.'/images/supprimer.gif" /></a>';

			}elseif ($icones == "fichexo"){
				// Pour les fiches d'exos, depend de si on a latex ou pas
				$res .= '<a href="/'.$table.'/modifier/'.$r->primkey.'"><img src="'.$URLBASE.'/images/editer.gif" /></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/'.$table.'/supprimer/'.$r->primkey.'"><img src="'.$URLBASE.'/images/supprimer.gif" /></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="'.$URLBASE.'latex/fiche_'.$r->primkey.'.tex" target="_NEW"><img src="'.$URLBASE.'/images/tex.png" /></a>';
				if ($LATEXDISPO == true){
					// On a LaTeX on peut donner les PDF
					$res .= '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="'.$URLBASE.'latex/pdf/'.$r->primkey.'.pdf" target="_NEW"><img src="'.$URLBASE.'/images/pdf.gif" /></a>';
				}
			}else{
				// Par défaut (detail / modifier / supprimer)
				$res .= '<a href="/'.$table.'/consulter/'.$r->primkey.'"><img src="'.$URLBASE.'/images/voir.gif" /></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/'.$table.'/modifier/'.$r->primkey.'"><img src="'.$URLBASE.'/images/editer.gif" /></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/'.$table.'/supprimer/'.$r->primkey.'"><img src="'.$URLBASE.'/images/supprimer.gif" /></a>';
			}

			$res .= "|||"; //substr($res, 0, strlen($res)-3)."|||";
		}

		if ($res == "")
			// Pas de réponse, pour éviter une erreur coté client, on envoie |||
			echo "|||";


		echo $res;
	}

	function vide($param){
		echo "|||";
	}

	function __test($param){
		// TODO enlever affichage par defaut

		$abc = '<a href="#" onclick="return false;"><img src="/images/voir.gif" /></a>&nbsp;&nbsp;<a href="#" onclick="ajouterexo(\''.'10'.'\', \''.'Exercice de maths'.'\');return false;"><img src="/images/plus.gif" /></a>';

		for ($i = 0; $i < 10; $i++)
			echo '<img src="/images/1.gif" />'."###".$param."###".$abc."|||".'<img src="/images/2.gif" />'."###".$param."###".$abc."|||".'<img src="/images/3.gif" />'."###".$param."###".$abc."|||";

	}

	function affichercatexo($id){
		$this->affichercat($id, "admin");
	}

	function affichermcexo($mot){
		$this->affichermc($mot, "admin");
	}


	function affichercat($id, $icones = "fiche"){

		/*modele("default");

		$dat = recupExosDunGroupe($id);

		$res = "";
		foreach($dat as $v => $k){
			$res .= '<img src="/images/'.$k["exo_difficulte"].'.gif" />###'.$k["exo_titre"]."###";
			$res .= "|||";
		}

		if ($res == ""){
			echo "|||";
		}
		echo $res;*/




GLOBAL $URLBASE, $props, $struct;

		if (!(isset($_GET["startIndex"]) && isset($_GET["numberOfRows"]) && isset($_GET["sortBy"]) && isset($_GET["sortAscending"]))){
			echo "Erreur";	
			return "";
		}

		// Constitution de la requete
		$req = "SELECT exo_UID, exo_titre, exo_difficulte";
		$req .= " FROM ".$this->s->table("exercice");
		$req .= " WHERE exo_UID in (SELECT typ_UIDexercices FROM exo_groupesexos WHERE typ_UIDgroupesexos=".$id.")";
		//$req .= (($_GET["sortAscending"] == "false") ? "DESC" : "ASC");
		//$req .= " LIMIT ".$this->s->proteger($_GET["startIndex"]).", ".$this->s->proteger($_GET["numberOfRows"]);

		// DEBUG
		//echo $req;

		$this->s->query($req);

		$res = "";
		while($r = $this->s->fetch_object()){

			$res .= '<img src="/images/'.$r->exo_difficulte.'.gif" />###'.$r->exo_titre."###";
			
			if ($icones == "fiche"){ // Etape 2 création fiche exo

				$res .= '<a href="#" onclick="afficherfiche('.$r->exo_UID.');return false;"><img src="/images/voir.gif" /></a>&nbsp;&nbsp;<a href="#" onclick="ajouterexo(\''.$r->exo_UID.'\', \'['.$r->exo_UID.'] '.addslashes($r->exo_titre).'\');return false;"><img src="/images/plus.gif" /></a>';
				
			}else{ // Admin qui gère les exercices

				$res .= '<a href="/exercice/consulter/'.$r->exo_UID.'"><img src="/images/voir.gif" /></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/exercice/modifier/'.$r->exo_UID.'"><img src="/images/editer.gif" /></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/exercice/supprimer/'.$r->exo_UID.'"><img src="/images/supprimer.gif" /></a>';

			}

			$res .= "|||"; //substr($res, 0, strlen($res)-3)."|||";
		}

		if ($res == "")
			// Pas de réponse, pour éviter une erreur coté client, on envoie |||
			echo "|||";


		echo $res;


	}


	
	function rechercheEtiquette($liste){
		if(isset($liste) && $liste!=""){
			$listemodif=substr($liste,0,strlen($liste)-1);
			$table=explode($listemodif,"|");
			$res=array();
			foreach($table as $v){
				$this->s->select("grp_UID,grp_parent","etiquette,groupes","eti_UID=".$this->s->proteger($v)." AND etiquette.eti_group=groupe.grp_UID");
				$groupuids=$this->s->fetch_object();
				if($groupe->grp_parent ==0)
					$res[$groupe->grp_UID][]=$v;
				else
					$res[$groupe->grp_parent][]=$v;
			}
		}
		else {
			echo "|||";
			return;
		}
	}


	function affichermc($mot, $icones = "fiche"){

		GLOBAL $URLBASE, $props, $struct;

		if (!(isset($_GET["startIndex"]) && isset($_GET["numberOfRows"]) && isset($_GET["sortBy"]) && isset($_GET["sortAscending"]))){
			echo "Erreur";	
			return "";
		}

		// Constitution de la requete
		$req = "SELECT exo_UID, exo_titre, exo_difficulte";
		$req .= " FROM ".$this->s->table("exercice");
		$req .= " WHERE exo_motsclef LIKE '%".$this->s->proteger($mot)."%' ORDER BY ".$this->s->proteger($_GET["sortBy"])." ";
		$req .= (($_GET["sortAscending"] == "false") ? "DESC" : "ASC");
		//$req .= " LIMIT ".$this->s->proteger($_GET["startIndex"]).", ".$this->s->proteger($_GET["numberOfRows"]);

		// DEBUG
		//echo $req;

		$this->s->query($req);

		$res = "";
		while($r = $this->s->fetch_object()){

			$res .= '<img src="/images/'.$r->exo_difficulte.'.gif" />###'.$r->exo_titre."###";
			
			if ($icones == "fiche"){ // Etape 2 création fiche exo

				$res .= '<a href="#" onclick="afficherfiche('.$r->exo_UID.');return false;"><img src="/images/voir.gif" /></a>&nbsp;&nbsp;<a href="#" onclick="ajouterexo(\''.$r->exo_UID.'\', \'['.$r->exo_UID.'] '.addslashes($r->exo_titre).'\');return false;"><img src="/images/plus.gif" /></a>';
				
			}else{ // Admin qui gère les exercices

				$res .= '<a href="/exercice/consulter/'.$r->exo_UID.'"><img src="/images/voir.gif" /></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/exercice/modifier/'.$r->exo_UID.'"><img src="/images/editer.gif" /></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/exercice/supprimer/'.$r->exo_UID.'"><img src="/images/supprimer.gif" /></a>';

			}

			$res .= "|||"; //substr($res, 0, strlen($res)-3)."|||";
		}

		if ($res == "")
			// Pas de réponse, pour éviter une erreur coté client, on envoie |||
			echo "|||";


		echo $res;
	}

}
?>
